
function deepClone(obj) {
  // if (obj === null || typeof obj !== 'object') {
  //   return obj
  // }
  // let copy;
  // if (Array.isArray(obj)) {
  //   copy = []
  //   for (let index = 0; index < obj.length; index++) {
  //     copy[index] = deepClone(obj[index])
  //   }
  // } else {
  //   copy = {}
  //   for (const key in obj) {
  //     if (obj.hasOwnProperty(key)) {
  //       copy[key] = deepClone(obj[key])
  //     }
  //   }
  // }
  // return copy
  return structuredClone(obj)
}
const obj1 = { a: 1, b: { c: 2, d: undefined, e: { f: null } } }
const obj2 = deepClone(obj1)
obj2.a = 1111
obj2.b.e = 'ssssss'
console.log(obj1, obj2);